package com.weiqiao.order.repository;

import com.weiqiao.base.dao.IBaseMongoDao;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 订单管理
 *
 * @author ChenYF
 */
public interface IOrderRepository extends IBaseMongoDao {
    /**
     * 搜索结果条数
     */
    int countNum(int company_id, Bson filter);

    /**
     * 添加订单
     *
     * @param company_id
     * @param json
     * @return
     */
    boolean addOrder(int company_id, String json);

    /**
     * 条件查询功能(分页)
     *
     * @param company_id 公司id
     * @param filter     查询条件
     * @param sort       排序条件
     * @param skip       页码
     * @param pageSize   个数
     * @return
     */
    List<String> getOrderListAndPage(int company_id, Bson filter, Bson sort, int skip, int pageSize);

    /**
     * 分页组件查询
     * @param company_id
     * @param filter
     * @param pageable
     * @return
     */
    List<String> getPage(int company_id, Bson filter, Pageable pageable);

    /**
     * 条件查询功能(不分页)
     *
     * @param company_id 公司id
     * @param filter     查询条件
     * @return
     */
    List<String> getOrderList(int company_id, Bson filter);


    /**
     * 修改订单
     *
     * @param company_id 公司id
     * @param bson       修改条件
     * @param doc        修改内容
     * @param batch      是否批量修改
     * @return
     */
    boolean updteOrder(int company_id, Bson bson, Document doc, Boolean batch);

    /**
     * 查询订单详情
     *
     * @param companyid 公司id
     * @param filter    条件
     * @return
     */
    String getOrderDetail(int companyid, Bson filter);
}
